<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>shark::LBFGS&lt; SearchPointType &gt; Class Template Reference</title>
<script type="text/javaScript" src="search/search.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3.0.1/es5/tex-mml-chtml.js"></script>
<script src="../../mlstyle.js"></script>
<link href="../css/besser.css" rel="stylesheet" type="text/css"/>
</head>
<!-- pretty cool: each body gets an id tag which is the basename of the web page  -->
<!--              and allows for page-specific CSS. this is client-side scripted, -->
<!--              so the id will not yet show up in the served source code -->
<script type="text/javascript">
    jQuery(document).ready(function () {
        var url = jQuery(location).attr('href');
        var pname = url.substr(url.lastIndexOf("/")+1, url.lastIndexOf(".")-url.lastIndexOf("/")-1);
        jQuery('#this_url').html('<strong>' + pname + '</strong>');
        jQuery('body').attr('id', pname);
    });
</script>
<body>
    <div id="shark_old">
        <div id="wrap">
            <div id="header">
                <div id="site-name"><a href="../../sphinx_pages/build/html/index.html">Shark machine learning library</a></div>
                <ul id="nav">
                    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/installation.html">Installation</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/tutorials/tutorials.html">Tutorials</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/benchmark.html">Benchmarks</a>
                    </li>
                    <li class="active">
                        <a href="classes.html">Documentation</a>
                        <ul>
                            <li class="first"></li>
                            <li><a href="../../sphinx_pages/build/html/rest_sources/quickref/quickref.html">Quick references</a></li>
                            <li><a href="classes.html">Class list</a></li>
                            <li class="last"><a href="group__shark__globals.html">Global functions</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </div>
<div id="doxywrapper">
<!--
    <div id="global_doxytitle">Doxygen<br>Documentation:</div>
-->
    <div id="navrow_wrapper">
<!-- Generated by Doxygen 1.9.8 -->
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceshark.html">shark</a></li><li class="navelem"><a class="el" href="classshark_1_1_l_b_f_g_s.html">LBFGS</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="classshark_1_1_l_b_f_g_s-members.html">List of all members</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle"><div class="title">shark::LBFGS&lt; SearchPointType &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__optimizers.html">Algorithms to find a local minimum of\ref objfunctions.</a> &raquo; <a class="el" href="group__gradientopt.html">Gradient-based Single objective optimizers</a></div></div></div>
</div><!--header-->
<div class="contents">

<p>Limited-Memory Broyden, Fletcher, Goldfarb, Shannon algorithm.  
 <a href="classshark_1_1_l_b_f_g_s.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_l_b_f_g_s_8h_source.html">shark/Algorithms/GradientDescent/LBFGS.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for shark::LBFGS&lt; SearchPointType &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classshark_1_1_l_b_f_g_s__inherit__graph.png" border="0" usemap="#ashark_1_1_l_b_f_g_s_3_01_search_point_type_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="ashark_1_1_l_b_f_g_s_3_01_search_point_type_01_4_inherit__map" id="ashark_1_1_l_b_f_g_s_3_01_search_point_type_01_4_inherit__map">
<area shape="rect" title="Limited&#45;Memory Broyden, Fletcher, Goldfarb, Shannon algorithm." alt="" coords="12,94,199,135"/>
<area shape="rect" href="classshark_1_1_abstract_line_search_optimizer.html" title="Basis class for line search methods." alt="" coords="5,5,206,46"/>
<area shape="poly" title=" " alt="" coords="108,62,108,94,103,94,103,62"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a547abec1b43a6f6ad1a06749dc3c217f" id="r_a547abec1b43a6f6ad1a06749dc3c217f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html">AbstractLineSearchOptimizer</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::ObjectiveFunctionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_l_b_f_g_s.html#a547abec1b43a6f6ad1a06749dc3c217f">ObjectiveFunctionType</a></td></tr>
<tr class="separator:a547abec1b43a6f6ad1a06749dc3c217f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classshark_1_1_abstract_line_search_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classshark_1_1_abstract_line_search_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html">shark::AbstractLineSearchOptimizer&lt; SearchPointType &gt;</a></td></tr>
<tr class="memitem:a444f639715ef1d69077760f88ff724a2 inherit pub_types_classshark_1_1_abstract_line_search_optimizer" id="r_a444f639715ef1d69077760f88ff724a2"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html">AbstractSingleObjectiveOptimizer</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::ObjectiveFunctionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a444f639715ef1d69077760f88ff724a2">ObjectiveFunctionType</a></td></tr>
<tr class="separator:a444f639715ef1d69077760f88ff724a2 inherit pub_types_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classshark_1_1_abstract_single_objective_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classshark_1_1_abstract_single_objective_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html">shark::AbstractSingleObjectiveOptimizer&lt; SearchPointType &gt;</a></td></tr>
<tr class="memitem:a85f0d04fdfb094dba4dc80b1fb5e3adb inherit pub_types_classshark_1_1_abstract_single_objective_optimizer" id="r_a85f0d04fdfb094dba4dc80b1fb5e3adb"><td class="memItemLeft" align="right" valign="top">typedef base_type::SearchPointType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a></td></tr>
<tr class="separator:a85f0d04fdfb094dba4dc80b1fb5e3adb inherit pub_types_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8abcd574faa4b7bd2fed03465d1eda35 inherit pub_types_classshark_1_1_abstract_single_objective_optimizer" id="r_a8abcd574faa4b7bd2fed03465d1eda35"><td class="memItemLeft" align="right" valign="top">typedef base_type::SolutionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a8abcd574faa4b7bd2fed03465d1eda35">SolutionType</a></td></tr>
<tr class="separator:a8abcd574faa4b7bd2fed03465d1eda35 inherit pub_types_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a068a68c8739215f4a13ce8a433ec38b3 inherit pub_types_classshark_1_1_abstract_single_objective_optimizer" id="r_a068a68c8739215f4a13ce8a433ec38b3"><td class="memItemLeft" align="right" valign="top">typedef base_type::ResultType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a068a68c8739215f4a13ce8a433ec38b3">ResultType</a></td></tr>
<tr class="separator:a068a68c8739215f4a13ce8a433ec38b3 inherit pub_types_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4c05609c54d7ebc99d099e7dd6e228f inherit pub_types_classshark_1_1_abstract_single_objective_optimizer" id="r_aa4c05609c54d7ebc99d099e7dd6e228f"><td class="memItemLeft" align="right" valign="top">typedef base_type::ObjectiveFunctionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a></td></tr>
<tr class="separator:aa4c05609c54d7ebc99d099e7dd6e228f inherit pub_types_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classshark_1_1_abstract_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classshark_1_1_abstract_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classshark_1_1_abstract_optimizer.html">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;</a></td></tr>
<tr class="memitem:a77bf437afee3445601c680cc652410f0 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_a77bf437afee3445601c680cc652410f0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0">Feature</a> { <br />
&#160;&#160;<a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0af46b9e1111a0858df3670fe12e4ffbf0">REQUIRES_VALUE</a> = 1
, <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0ad9b925369d4f923c63792bf455eac1d7">REQUIRES_FIRST_DERIVATIVE</a> = 2
, <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0a0a32670987bb219aaf2f6defc70e6f03">REQUIRES_SECOND_DERIVATIVE</a> = 4
, <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0ab95c65f700f2158f39039d8f580d350f">CAN_SOLVE_CONSTRAINED</a> = 8
, <br />
&#160;&#160;<a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0addbe7762d6f4f8769cc06f61bc9c5c28">REQUIRES_CLOSEST_FEASIBLE</a> = 16
<br />
 }</td></tr>
<tr class="memdesc:a77bf437afee3445601c680cc652410f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Models features that the optimizer requires from the objective function.  <a href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0">More...</a><br /></td></tr>
<tr class="separator:a77bf437afee3445601c680cc652410f0 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abea8df343e5638782a9a82403adb5ae1 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_abea8df343e5638782a9a82403adb5ae1"><td class="memItemLeft" align="right" valign="top">typedef PointType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#abea8df343e5638782a9a82403adb5ae1">SearchPointType</a></td></tr>
<tr class="separator:abea8df343e5638782a9a82403adb5ae1 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89ed73f010deb3809acbcf23160c0f6b inherit pub_types_classshark_1_1_abstract_optimizer" id="r_a89ed73f010deb3809acbcf23160c0f6b"><td class="memItemLeft" align="right" valign="top">typedef ResultT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a89ed73f010deb3809acbcf23160c0f6b">ResultType</a></td></tr>
<tr class="separator:a89ed73f010deb3809acbcf23160c0f6b inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc94d354dbe0b99c0a69ec3e6e5e8657 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_abc94d354dbe0b99c0a69ec3e6e5e8657"><td class="memItemLeft" align="right" valign="top">typedef SolutionTypeT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#abc94d354dbe0b99c0a69ec3e6e5e8657">SolutionType</a></td></tr>
<tr class="separator:abc94d354dbe0b99c0a69ec3e6e5e8657 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7a9b0634e5a5cbd683f5510b41b7062 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_ac7a9b0634e5a5cbd683f5510b41b7062"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classshark_1_1_abstract_objective_function.html">AbstractObjectiveFunction</a>&lt; PointType, <a class="el" href="classshark_1_1_abstract_optimizer.html#a89ed73f010deb3809acbcf23160c0f6b">ResultType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a></td></tr>
<tr class="separator:ac7a9b0634e5a5cbd683f5510b41b7062 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab43ff108d945a982e98495432ace599f inherit pub_types_classshark_1_1_abstract_optimizer" id="r_ab43ff108d945a982e98495432ace599f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classshark_1_1_typed_flags.html">TypedFlags</a>&lt; <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0">Feature</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#ab43ff108d945a982e98495432ace599f">Features</a></td></tr>
<tr class="separator:ab43ff108d945a982e98495432ace599f inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47751327ce0519d3378a9b2ad188d1e6 inherit pub_types_classshark_1_1_abstract_optimizer" id="r_a47751327ce0519d3378a9b2ad188d1e6"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classshark_1_1_typed_feature_not_available_exception.html">TypedFeatureNotAvailableException</a>&lt; <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0">Feature</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a47751327ce0519d3378a9b2ad188d1e6">FeatureNotAvailableException</a></td></tr>
<tr class="separator:a47751327ce0519d3378a9b2ad188d1e6 inherit pub_types_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af1a1c3e07e77e4183383cd506ce121da" id="r_af1a1c3e07e77e4183383cd506ce121da"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_l_b_f_g_s.html#af1a1c3e07e77e4183383cd506ce121da">LBFGS</a> ()</td></tr>
<tr class="separator:af1a1c3e07e77e4183383cd506ce121da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9166b5a6d3a92af54895ab7308223de2" id="r_a9166b5a6d3a92af54895ab7308223de2"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_l_b_f_g_s.html#a9166b5a6d3a92af54895ab7308223de2">name</a> () const</td></tr>
<tr class="memdesc:a9166b5a6d3a92af54895ab7308223de2"><td class="mdescLeft">&#160;</td><td class="mdescRight">From <a class="el" href="classshark_1_1_i_nameable.html" title="This class is an interface for all objects which can have a name.">INameable</a>: return the class name.  <br /></td></tr>
<tr class="separator:a9166b5a6d3a92af54895ab7308223de2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57f205e2184f5a1c4d57a6ac99ec94fa" id="r_a57f205e2184f5a1c4d57a6ac99ec94fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_l_b_f_g_s.html#a57f205e2184f5a1c4d57a6ac99ec94fa">setHistCount</a> (unsigned int numhist)</td></tr>
<tr class="memdesc:a57f205e2184f5a1c4d57a6ac99ec94fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specify the amount of steps to be memorized and used to find the L-BFGS direction.  <br /></td></tr>
<tr class="separator:a57f205e2184f5a1c4d57a6ac99ec94fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbf39210c8d5255385700e2f5fb6e019" id="r_adbf39210c8d5255385700e2f5fb6e019"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_l_b_f_g_s.html#adbf39210c8d5255385700e2f5fb6e019">read</a> (<a class="el" href="namespaceshark.html#ada68729491840669e47c8ad42282424f">InArchive</a> &amp;archive)</td></tr>
<tr class="memdesc:adbf39210c8d5255385700e2f5fb6e019"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the component from the supplied archive.  <br /></td></tr>
<tr class="separator:adbf39210c8d5255385700e2f5fb6e019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5341c7990a3411e81bf04dd00b0983d" id="r_ab5341c7990a3411e81bf04dd00b0983d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_l_b_f_g_s.html#ab5341c7990a3411e81bf04dd00b0983d">write</a> (<a class="el" href="namespaceshark.html#af4f8eb8e9618f5236b71bbcb12b8a524">OutArchive</a> &amp;archive) const</td></tr>
<tr class="memdesc:ab5341c7990a3411e81bf04dd00b0983d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the component to the supplied archive.  <br /></td></tr>
<tr class="separator:ab5341c7990a3411e81bf04dd00b0983d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshark_1_1_abstract_line_search_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshark_1_1_abstract_line_search_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html">shark::AbstractLineSearchOptimizer&lt; SearchPointType &gt;</a></td></tr>
<tr class="memitem:ac31b2a22776918a63312376f198e9968 inherit pub_methods_classshark_1_1_abstract_line_search_optimizer" id="r_ac31b2a22776918a63312376f198e9968"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#ac31b2a22776918a63312376f198e9968">AbstractLineSearchOptimizer</a> ()</td></tr>
<tr class="separator:ac31b2a22776918a63312376f198e9968 inherit pub_methods_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a197982cec7de486f937715a3f280be72 inherit pub_methods_classshark_1_1_abstract_line_search_optimizer" id="r_a197982cec7de486f937715a3f280be72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a197982cec7de486f937715a3f280be72">init</a> (<a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a444f639715ef1d69077760f88ff724a2">ObjectiveFunctionType</a> const &amp;objectiveFunction, <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> const &amp;startingPoint)</td></tr>
<tr class="separator:a197982cec7de486f937715a3f280be72 inherit pub_methods_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6689563bafd7dbbb02299e161238b26 inherit pub_methods_classshark_1_1_abstract_line_search_optimizer" id="r_ae6689563bafd7dbbb02299e161238b26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#ae6689563bafd7dbbb02299e161238b26">step</a> (<a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a444f639715ef1d69077760f88ff724a2">ObjectiveFunctionType</a> const &amp;objectiveFunction)</td></tr>
<tr class="separator:ae6689563bafd7dbbb02299e161238b26 inherit pub_methods_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81c26e0694b3b7912be4a7deaab6a496 inherit pub_methods_classshark_1_1_abstract_line_search_optimizer" id="r_a81c26e0694b3b7912be4a7deaab6a496"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_line_search.html">LineSearch</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt; const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a81c26e0694b3b7912be4a7deaab6a496">lineSearch</a> () const</td></tr>
<tr class="separator:a81c26e0694b3b7912be4a7deaab6a496 inherit pub_methods_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b75b17afa3d795e0c98b8ac0e9551dc inherit pub_methods_classshark_1_1_abstract_line_search_optimizer" id="r_a6b75b17afa3d795e0c98b8ac0e9551dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_line_search.html">LineSearch</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a6b75b17afa3d795e0c98b8ac0e9551dc">lineSearch</a> ()</td></tr>
<tr class="separator:a6b75b17afa3d795e0c98b8ac0e9551dc inherit pub_methods_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad35111bf627c76f3cedd4dd5f92fcd9b inherit pub_methods_classshark_1_1_abstract_line_search_optimizer" id="r_ad35111bf627c76f3cedd4dd5f92fcd9b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> const &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#ad35111bf627c76f3cedd4dd5f92fcd9b">derivative</a> () const</td></tr>
<tr class="memdesc:ad35111bf627c76f3cedd4dd5f92fcd9b inherit pub_methods_classshark_1_1_abstract_line_search_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the derivative at the current point. Can be used for stopping criteria.  <br /></td></tr>
<tr class="separator:ad35111bf627c76f3cedd4dd5f92fcd9b inherit pub_methods_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshark_1_1_abstract_single_objective_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html">shark::AbstractSingleObjectiveOptimizer&lt; SearchPointType &gt;</a></td></tr>
<tr class="memitem:a1bd54036e3524dc2ddf02afeadc0939f inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer" id="r_a1bd54036e3524dc2ddf02afeadc0939f"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a1bd54036e3524dc2ddf02afeadc0939f">numInitPoints</a> () const</td></tr>
<tr class="memdesc:a1bd54036e3524dc2ddf02afeadc0939f inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">By default most single objective optimizers only require a single point.  <br /></td></tr>
<tr class="separator:a1bd54036e3524dc2ddf02afeadc0939f inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a246f1f1d4e0566c9a0ca43035a63fad5 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer" id="r_a246f1f1d4e0566c9a0ca43035a63fad5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a246f1f1d4e0566c9a0ca43035a63fad5">init</a> (<a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a> const &amp;function, std::vector&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt; const &amp;initPoints)</td></tr>
<tr class="memdesc:a246f1f1d4e0566c9a0ca43035a63fad5 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the optimizer for the supplied objective function using a set of initialisation points.  <br /></td></tr>
<tr class="separator:a246f1f1d4e0566c9a0ca43035a63fad5 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae53c1a8348f5ab987f5aa8829fd8020f inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer" id="r_ae53c1a8348f5ab987f5aa8829fd8020f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#ae53c1a8348f5ab987f5aa8829fd8020f">init</a> (<a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#aa4c05609c54d7ebc99d099e7dd6e228f">ObjectiveFunctionType</a> const &amp;function, <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> const &amp;startingPoint)=0</td></tr>
<tr class="memdesc:ae53c1a8348f5ab987f5aa8829fd8020f inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">initializes the optimizer using a predefined starting point  <br /></td></tr>
<tr class="separator:ae53c1a8348f5ab987f5aa8829fd8020f inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0909596fcc4f80a8d108859b20b64a81 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer" id="r_a0909596fcc4f80a8d108859b20b64a81"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a8abcd574faa4b7bd2fed03465d1eda35">SolutionType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a0909596fcc4f80a8d108859b20b64a81">solution</a> () const</td></tr>
<tr class="memdesc:a0909596fcc4f80a8d108859b20b64a81 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the current solution of the optimizer  <br /></td></tr>
<tr class="separator:a0909596fcc4f80a8d108859b20b64a81 inherit pub_methods_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshark_1_1_abstract_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshark_1_1_abstract_optimizer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classshark_1_1_abstract_optimizer.html">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;</a></td></tr>
<tr class="memitem:a40334039f6e799b2255d229874e9fa39 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a40334039f6e799b2255d229874e9fa39"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classshark_1_1_abstract_optimizer.html#ab43ff108d945a982e98495432ace599f">Features</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a40334039f6e799b2255d229874e9fa39">features</a> () const</td></tr>
<tr class="separator:a40334039f6e799b2255d229874e9fa39 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc0219242dff14757398c81d2e82c22e inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_adc0219242dff14757398c81d2e82c22e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#adc0219242dff14757398c81d2e82c22e">updateFeatures</a> ()</td></tr>
<tr class="separator:adc0219242dff14757398c81d2e82c22e inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8645fb354408c89d3537aa87aed49b79 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a8645fb354408c89d3537aa87aed49b79"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a8645fb354408c89d3537aa87aed49b79">requiresValue</a> () const</td></tr>
<tr class="separator:a8645fb354408c89d3537aa87aed49b79 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13dff098bcde14529b64be653d73d57f inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a13dff098bcde14529b64be653d73d57f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a13dff098bcde14529b64be653d73d57f">requiresFirstDerivative</a> () const</td></tr>
<tr class="separator:a13dff098bcde14529b64be653d73d57f inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9da146985b7738554e09f75a670f8c97 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a9da146985b7738554e09f75a670f8c97"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a9da146985b7738554e09f75a670f8c97">requiresSecondDerivative</a> () const</td></tr>
<tr class="separator:a9da146985b7738554e09f75a670f8c97 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecad1d60d38fd243eaf7c7bf0f6d01af inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_aecad1d60d38fd243eaf7c7bf0f6d01af"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#aecad1d60d38fd243eaf7c7bf0f6d01af">canSolveConstrained</a> () const</td></tr>
<tr class="separator:aecad1d60d38fd243eaf7c7bf0f6d01af inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9332ad1b90deed11ee6709a92964bc9 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_aa9332ad1b90deed11ee6709a92964bc9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#aa9332ad1b90deed11ee6709a92964bc9">requiresClosestFeasible</a> () const</td></tr>
<tr class="separator:aa9332ad1b90deed11ee6709a92964bc9 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd45149f57784a117e8f62d0763bf891 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_abd45149f57784a117e8f62d0763bf891"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#abd45149f57784a117e8f62d0763bf891">~AbstractOptimizer</a> ()</td></tr>
<tr class="separator:abd45149f57784a117e8f62d0763bf891 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa65e7eece1d248594253b799cf20e7a inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_aaa65e7eece1d248594253b799cf20e7a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#aaa65e7eece1d248594253b799cf20e7a">init</a> (<a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a> const &amp;function)</td></tr>
<tr class="memdesc:aaa65e7eece1d248594253b799cf20e7a inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the optimizer for the supplied objective function.  <br /></td></tr>
<tr class="separator:aaa65e7eece1d248594253b799cf20e7a inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f6f869a2ea7c6d29e70f8248f076f66 inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_a5f6f869a2ea7c6d29e70f8248f076f66"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a5f6f869a2ea7c6d29e70f8248f076f66">init</a> (<a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a> const &amp;function, std::vector&lt; <a class="el" href="classshark_1_1_abstract_optimizer.html#abea8df343e5638782a9a82403adb5ae1">SearchPointType</a> &gt; const &amp;initPoints)=0</td></tr>
<tr class="memdesc:a5f6f869a2ea7c6d29e70f8248f076f66 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the optimizer for the supplied objective function using a set of initialisation points.  <br /></td></tr>
<tr class="separator:a5f6f869a2ea7c6d29e70f8248f076f66 inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfc507951eb09c50d62c474c79d773ea inherit pub_methods_classshark_1_1_abstract_optimizer" id="r_abfc507951eb09c50d62c474c79d773ea"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#abfc507951eb09c50d62c474c79d773ea">step</a> (<a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a> const &amp;function)=0</td></tr>
<tr class="memdesc:abfc507951eb09c50d62c474c79d773ea inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Carry out one step of the optimizer for the supplied objective function.  <br /></td></tr>
<tr class="separator:abfc507951eb09c50d62c474c79d773ea inherit pub_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshark_1_1_i_nameable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshark_1_1_i_nameable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classshark_1_1_i_nameable.html">shark::INameable</a></td></tr>
<tr class="memitem:a877dbdfc6b58ea836495143cea44a98c inherit pub_methods_classshark_1_1_i_nameable" id="r_a877dbdfc6b58ea836495143cea44a98c"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_nameable.html#a877dbdfc6b58ea836495143cea44a98c">~INameable</a> ()</td></tr>
<tr class="separator:a877dbdfc6b58ea836495143cea44a98c inherit pub_methods_classshark_1_1_i_nameable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classshark_1_1_i_serializable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classshark_1_1_i_serializable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classshark_1_1_i_serializable.html">shark::ISerializable</a></td></tr>
<tr class="memitem:a7baa9ce108d7278822297ce15882782a inherit pub_methods_classshark_1_1_i_serializable" id="r_a7baa9ce108d7278822297ce15882782a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_serializable.html#a7baa9ce108d7278822297ce15882782a">~ISerializable</a> ()</td></tr>
<tr class="memdesc:a7baa9ce108d7278822297ce15882782a inherit pub_methods_classshark_1_1_i_serializable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual d'tor.  <br /></td></tr>
<tr class="separator:a7baa9ce108d7278822297ce15882782a inherit pub_methods_classshark_1_1_i_serializable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdda0c5b8e065b8afbac2cba8f58e841 inherit pub_methods_classshark_1_1_i_serializable" id="r_abdda0c5b8e065b8afbac2cba8f58e841"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_serializable.html#abdda0c5b8e065b8afbac2cba8f58e841">load</a> (<a class="el" href="namespaceshark.html#ada68729491840669e47c8ad42282424f">InArchive</a> &amp;archive, unsigned int version)</td></tr>
<tr class="memdesc:abdda0c5b8e065b8afbac2cba8f58e841 inherit pub_methods_classshark_1_1_i_serializable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Versioned loading of components, calls read(...).  <br /></td></tr>
<tr class="separator:abdda0c5b8e065b8afbac2cba8f58e841 inherit pub_methods_classshark_1_1_i_serializable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bf66fa8db15cc529bec98976a2f5255 inherit pub_methods_classshark_1_1_i_serializable" id="r_a5bf66fa8db15cc529bec98976a2f5255"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_serializable.html#a5bf66fa8db15cc529bec98976a2f5255">save</a> (<a class="el" href="namespaceshark.html#af4f8eb8e9618f5236b71bbcb12b8a524">OutArchive</a> &amp;archive, unsigned int version) const</td></tr>
<tr class="memdesc:a5bf66fa8db15cc529bec98976a2f5255 inherit pub_methods_classshark_1_1_i_serializable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Versioned storing of components, calls write(...).  <br /></td></tr>
<tr class="separator:a5bf66fa8db15cc529bec98976a2f5255 inherit pub_methods_classshark_1_1_i_serializable"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4560a94e8f4908fe8627e41e7d965735 inherit pub_methods_classshark_1_1_i_serializable" id="r_a4560a94e8f4908fe8627e41e7d965735"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_i_serializable.html#a4560a94e8f4908fe8627e41e7d965735">BOOST_SERIALIZATION_SPLIT_MEMBER</a> ()</td></tr>
<tr class="separator:a4560a94e8f4908fe8627e41e7d965735 inherit pub_methods_classshark_1_1_i_serializable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:aeee8fae6dba7fd99c3e4099fe6427797" id="r_aeee8fae6dba7fd99c3e4099fe6427797"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_l_b_f_g_s.html#aeee8fae6dba7fd99c3e4099fe6427797">initModel</a> ()</td></tr>
<tr class="memdesc:aeee8fae6dba7fd99c3e4099fe6427797"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the internal model.  <br /></td></tr>
<tr class="separator:aeee8fae6dba7fd99c3e4099fe6427797"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cf819c6eb6e886395ae71df403edc6e" id="r_a2cf819c6eb6e886395ae71df403edc6e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_l_b_f_g_s.html#a2cf819c6eb6e886395ae71df403edc6e">computeSearchDirection</a> (<a class="el" href="classshark_1_1_l_b_f_g_s.html#a547abec1b43a6f6ad1a06749dc3c217f">ObjectiveFunctionType</a> const &amp;)</td></tr>
<tr class="memdesc:a2cf819c6eb6e886395ae71df403edc6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the Model and computes the next search direction.  <br /></td></tr>
<tr class="separator:a2cf819c6eb6e886395ae71df403edc6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classshark_1_1_abstract_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classshark_1_1_abstract_optimizer')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classshark_1_1_abstract_optimizer.html">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;</a></td></tr>
<tr class="memitem:ae7a23300641448c761b6aa0305b7ef66 inherit pro_methods_classshark_1_1_abstract_optimizer" id="r_ae7a23300641448c761b6aa0305b7ef66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#ae7a23300641448c761b6aa0305b7ef66">checkFeatures</a> (<a class="el" href="classshark_1_1_abstract_optimizer.html#ac7a9b0634e5a5cbd683f5510b41b7062">ObjectiveFunctionType</a> const &amp;objectiveFunction)</td></tr>
<tr class="memdesc:ae7a23300641448c761b6aa0305b7ef66 inherit pro_methods_classshark_1_1_abstract_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function that checks whether the features of the supplied objective function match with the required features of the optimizer.  <br /></td></tr>
<tr class="separator:ae7a23300641448c761b6aa0305b7ef66 inherit pro_methods_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classshark_1_1_abstract_line_search_optimizer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html">shark::AbstractLineSearchOptimizer&lt; SearchPointType &gt;</a></td></tr>
<tr class="memitem:a74e00af1aa4819d043c75a5fe445f88c inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer" id="r_a74e00af1aa4819d043c75a5fe445f88c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_line_search.html">LineSearch</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a74e00af1aa4819d043c75a5fe445f88c">m_linesearch</a></td></tr>
<tr class="memdesc:a74e00af1aa4819d043c75a5fe445f88c inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">used line search method.  <br /></td></tr>
<tr class="separator:a74e00af1aa4819d043c75a5fe445f88c inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6353cf1a8be6c679819b27301810d82 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer" id="r_ae6353cf1a8be6c679819b27301810d82"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#ae6353cf1a8be6c679819b27301810d82">m_dimension</a></td></tr>
<tr class="memdesc:ae6353cf1a8be6c679819b27301810d82 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of parameters  <br /></td></tr>
<tr class="separator:ae6353cf1a8be6c679819b27301810d82 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3035c91c531b9af33ff421196ee4aae9 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer" id="r_a3035c91c531b9af33ff421196ee4aae9"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a3035c91c531b9af33ff421196ee4aae9">m_initialStepLength</a></td></tr>
<tr class="memdesc:a3035c91c531b9af33ff421196ee4aae9 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initial step length to begin with the line search.  <br /></td></tr>
<tr class="separator:a3035c91c531b9af33ff421196ee4aae9 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a603e289c36809ac54f4b68f1fc039854 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer" id="r_a603e289c36809ac54f4b68f1fc039854"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a603e289c36809ac54f4b68f1fc039854">m_derivative</a></td></tr>
<tr class="memdesc:a603e289c36809ac54f4b68f1fc039854 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">gradient of m_best.point  <br /></td></tr>
<tr class="separator:a603e289c36809ac54f4b68f1fc039854 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62fa9e74475370676158fea923cbf9fc inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer" id="r_a62fa9e74475370676158fea923cbf9fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a62fa9e74475370676158fea923cbf9fc">m_searchDirection</a></td></tr>
<tr class="memdesc:a62fa9e74475370676158fea923cbf9fc inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">search direction of next step  <br /></td></tr>
<tr class="separator:a62fa9e74475370676158fea923cbf9fc inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad52639e41e70281b1829d57fc5b149d9 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer" id="r_ad52639e41e70281b1829d57fc5b149d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#ad52639e41e70281b1829d57fc5b149d9">m_lastPoint</a></td></tr>
<tr class="memdesc:ad52639e41e70281b1829d57fc5b149d9 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">previous point  <br /></td></tr>
<tr class="separator:ad52639e41e70281b1829d57fc5b149d9 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6da37a4da255d8e01d1df93b9d44b016 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer" id="r_a6da37a4da255d8e01d1df93b9d44b016"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a6da37a4da255d8e01d1df93b9d44b016">m_lastDerivative</a></td></tr>
<tr class="memdesc:a6da37a4da255d8e01d1df93b9d44b016 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">gradient of the previous point  <br /></td></tr>
<tr class="separator:a6da37a4da255d8e01d1df93b9d44b016 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedcacc0ad24510580e074e462c9ea1c1 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer" id="r_aedcacc0ad24510580e074e462c9ea1c1"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#aedcacc0ad24510580e074e462c9ea1c1">m_lastValue</a></td></tr>
<tr class="memdesc:aedcacc0ad24510580e074e462c9ea1c1 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">value of the previous point  <br /></td></tr>
<tr class="separator:aedcacc0ad24510580e074e462c9ea1c1 inherit pro_attribs_classshark_1_1_abstract_line_search_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classshark_1_1_abstract_single_objective_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classshark_1_1_abstract_single_objective_optimizer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html">shark::AbstractSingleObjectiveOptimizer&lt; SearchPointType &gt;</a></td></tr>
<tr class="memitem:a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0 inherit pro_attribs_classshark_1_1_abstract_single_objective_optimizer" id="r_a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a8abcd574faa4b7bd2fed03465d1eda35">SolutionType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0">m_best</a></td></tr>
<tr class="memdesc:a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0 inherit pro_attribs_classshark_1_1_abstract_single_objective_optimizer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current solution of the optimizer.  <br /></td></tr>
<tr class="separator:a4740a0f8e9d5c7d99cf0dd0c3ee0e8a0 inherit pro_attribs_classshark_1_1_abstract_single_objective_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classshark_1_1_abstract_optimizer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classshark_1_1_abstract_optimizer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classshark_1_1_abstract_optimizer.html">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;</a></td></tr>
<tr class="memitem:a72daf583d406e144b90869f311baa594 inherit pro_attribs_classshark_1_1_abstract_optimizer" id="r_a72daf583d406e144b90869f311baa594"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_abstract_optimizer.html#ab43ff108d945a982e98495432ace599f">Features</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_abstract_optimizer.html#a72daf583d406e144b90869f311baa594">m_features</a></td></tr>
<tr class="separator:a72daf583d406e144b90869f311baa594 inherit pro_attribs_classshark_1_1_abstract_optimizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> = RealVector&gt;<br />
class shark::LBFGS&lt; SearchPointType &gt;</div><p>Limited-Memory Broyden, Fletcher, Goldfarb, Shannon algorithm. </p>
<p><a class="el" href="classshark_1_1_b_f_g_s.html" title="Broyden, Fletcher, Goldfarb, Shannon algorithm for unconstraint optimization.">BFGS</a> is one of the best performing quasi-newton methods. However for large scale optimization, storing the full hessian approximation is infeasible due to O(n^2) memory requirement. The L-BFGS algorithm does not store the full hessian approximation but only stores the data used for updating in the last steps. The matrix itself is then regenerated on-the-fly in an implicit matrix scheme. This brings runtime and memory rquirements of a single step down to O(n*hist_size).</p>
<p>The number of steps stored can be set with setHistCount. This is 100 as default.</p>
<p>The algorithm is implemented for unconstrained and constrained optimization in the case of box constraints. When box constraints are present and the algorithm encounters a constraint, a dog-leg style algorithm is used:</p>
<p>first, all variables with active constraints (e.g. x_i = l_i and g_i &gt; 0) are fixed, i.e. p_i = 0. For the remaining variables, the unconstrained optimization problem is solved. If the solution does not statisfy the box constraints, in the next step the cauchy point is computed. If the cauchy point is feasible, we search the point along the line between unconstrained optimum and cauchy point that lies exactly on the constraint. This is the point with smallest value along the path. This does not find the true optimal step in the unconstrained problem, however a cheap and reasonably good optimum which often improves over naive coordinate descent. </p>

<p class="definition">Definition at line <a class="el" href="_l_b_f_g_s_8h_source.html#l00073">73</a> of file <a class="el" href="_l_b_f_g_s_8h_source.html">LBFGS.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a547abec1b43a6f6ad1a06749dc3c217f" name="a547abec1b43a6f6ad1a06749dc3c217f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a547abec1b43a6f6ad1a06749dc3c217f">&#9670;&#160;</a></span>ObjectiveFunctionType</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>  = RealVector&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html">AbstractLineSearchOptimizer</a>&lt;<a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>&gt;::ObjectiveFunctionType <a class="el" href="classshark_1_1_l_b_f_g_s.html">shark::LBFGS</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::ObjectiveFunctionType</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_l_b_f_g_s_8h_source.html#l00075">75</a> of file <a class="el" href="_l_b_f_g_s_8h_source.html">LBFGS.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af1a1c3e07e77e4183383cd506ce121da" name="af1a1c3e07e77e4183383cd506ce121da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1a1c3e07e77e4183383cd506ce121da">&#9670;&#160;</a></span>LBFGS()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>  = RealVector&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_l_b_f_g_s.html">shark::LBFGS</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::LBFGS </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_l_b_f_g_s_8h_source.html#l00077">77</a> of file <a class="el" href="_l_b_f_g_s_8h_source.html">LBFGS.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_abstract_optimizer.html#a77bf437afee3445601c680cc652410f0ab95c65f700f2158f39039d8f580d350f">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;::CAN_SOLVE_CONSTRAINED</a>, and <a class="el" href="classshark_1_1_abstract_optimizer.html#a72daf583d406e144b90869f311baa594">shark::AbstractOptimizer&lt; PointType, ResultT, SolutionTypeT &gt;::m_features</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2cf819c6eb6e886395ae71df403edc6e" name="a2cf819c6eb6e886395ae71df403edc6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cf819c6eb6e886395ae71df403edc6e">&#9670;&#160;</a></span>computeSearchDirection()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>  = RealVector&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classshark_1_1_l_b_f_g_s.html">shark::LBFGS</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::computeSearchDirection </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classshark_1_1_l_b_f_g_s.html#a547abec1b43a6f6ad1a06749dc3c217f">ObjectiveFunctionType</a> const &amp;&#160;</td>
          <td class="paramname"><em>objectiveFunction</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Updates the Model and computes the next search direction. </p>
<p>After a step was performed, this method is called to compute the next search direction. This usually involves updating the internal model using the new and old step information. Afterwards m_searchDirection should contain the next search direction. </p>

<p>Implements <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a042c4dddbfd3bf00c981e66bd363d6db">shark::AbstractLineSearchOptimizer&lt; SearchPointType &gt;</a>.</p>

</div>
</div>
<a id="aeee8fae6dba7fd99c3e4099fe6427797" name="aeee8fae6dba7fd99c3e4099fe6427797"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeee8fae6dba7fd99c3e4099fe6427797">&#9670;&#160;</a></span>initModel()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>  = RealVector&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classshark_1_1_l_b_f_g_s.html">shark::LBFGS</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::initModel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Initializes the internal model. </p>
<p>Line Search Methods use a Model to search for the next search direction. The model is initialized during <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a197982cec7de486f937715a3f280be72">init()</a> </p>

<p>Implements <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a4f5d589bb165982f6298cc886ea41fa7">shark::AbstractLineSearchOptimizer&lt; SearchPointType &gt;</a>.</p>

</div>
</div>
<a id="a9166b5a6d3a92af54895ab7308223de2" name="a9166b5a6d3a92af54895ab7308223de2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9166b5a6d3a92af54895ab7308223de2">&#9670;&#160;</a></span>name()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>  = RealVector&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string <a class="el" href="classshark_1_1_l_b_f_g_s.html">shark::LBFGS</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::name </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>From <a class="el" href="classshark_1_1_i_nameable.html" title="This class is an interface for all objects which can have a name.">INameable</a>: return the class name. </p>

<p>Reimplemented from <a class="el" href="classshark_1_1_i_nameable.html#a9893f99314de30cd472e649c235d0db4">shark::INameable</a>.</p>

<p class="definition">Definition at line <a class="el" href="_l_b_f_g_s_8h_source.html#l00082">82</a> of file <a class="el" href="_l_b_f_g_s_8h_source.html">LBFGS.h</a>.</p>

</div>
</div>
<a id="adbf39210c8d5255385700e2f5fb6e019" name="adbf39210c8d5255385700e2f5fb6e019"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbf39210c8d5255385700e2f5fb6e019">&#9670;&#160;</a></span>read()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>  = RealVector&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classshark_1_1_l_b_f_g_s.html">shark::LBFGS</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceshark.html#ada68729491840669e47c8ad42282424f">InArchive</a> &amp;&#160;</td>
          <td class="paramname"><em>archive</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Read the component from the supplied archive. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">archive</td><td>The archive to read from. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#aac2d86149b2232e949f41f4d04f86002">shark::AbstractLineSearchOptimizer&lt; SearchPointType &gt;</a>.</p>

</div>
</div>
<a id="a57f205e2184f5a1c4d57a6ac99ec94fa" name="a57f205e2184f5a1c4d57a6ac99ec94fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57f205e2184f5a1c4d57a6ac99ec94fa">&#9670;&#160;</a></span>setHistCount()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>  = RealVector&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classshark_1_1_l_b_f_g_s.html">shark::LBFGS</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::setHistCount </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>numhist</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Specify the amount of steps to be memorized and used to find the L-BFGS direction. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">numhist</td><td>The amount of steps to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="_l_b_f_g_s_8h_source.html#l00088">88</a> of file <a class="el" href="_l_b_f_g_s_8h_source.html">LBFGS.h</a>.</p>

<p class="reference">References <a class="el" href="_exception_8h.html#adce1f80097c69010f5eab2618fa2e971">SHARK_RUNTIME_CHECK</a>.</p>

</div>
</div>
<a id="ab5341c7990a3411e81bf04dd00b0983d" name="ab5341c7990a3411e81bf04dd00b0983d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5341c7990a3411e81bf04dd00b0983d">&#9670;&#160;</a></span>write()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a>  = RealVector&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classshark_1_1_l_b_f_g_s.html">shark::LBFGS</a>&lt; <a class="el" href="classshark_1_1_abstract_single_objective_optimizer.html#a85f0d04fdfb094dba4dc80b1fb5e3adb">SearchPointType</a> &gt;::write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceshark.html#af4f8eb8e9618f5236b71bbcb12b8a524">OutArchive</a> &amp;&#160;</td>
          <td class="paramname"><em>archive</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the component to the supplied archive. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">archive</td><td>The archive to write to. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classshark_1_1_abstract_line_search_optimizer.html#a184bd9be70f815f9cb8d45782be364a7">shark::AbstractLineSearchOptimizer&lt; SearchPointType &gt;</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/shark/Algorithms/GradientDescent/<a class="el" href="_l_b_f_g_s_8h_source.html">LBFGS.h</a></li>
</ul>
</div><!-- contents -->
</div>
</body>
</html>
